package com.linkgie.galaxyframework.utils;

import java.io.ByteArrayInputStream;
import java.io.InputStream;

/**
 * 编码管道；
 * <p>
 * 对写入的数据进行编码；
 */
public interface EncodingPipe {

    /**
     * 对请求数据进行编码；
     *
     * @param plainBytes
     * @return
     */
    default byte[] encode(byte[] plainBytes) {
        ByteArrayInputStream in = new ByteArrayInputStream(plainBytes);
        InputStream encodedInputStream = encode(in);
        return BinaryUtils.readBytes(encodedInputStream);
    }

    /**
     * 对数据进行编码；
     *
     * @param plainInput 数据输入流；
     * @return 编码后的数据输入流；
     */
    InputStream encode(InputStream plainInput);

}
